package com.zhengtoon.mctoon.conv.dao;

import org.apache.ibatis.annotations.Param;

import com.zhengtoon.mctoon.conv.bean.ConvPhotoInfo;
import com.zhengtoon.mctoon.conv.dto.mybatis.Page;

import java.util.List;
import java.util.Map;

/**
 * 随手拍DAO接口
 *
 * @author 赵康峰
 * @since 2017-05-26
 * Copyright: Copyright (c) 2017
 * Company:北京政务通有限公司
 */
public interface ConvPhotoInfoMapper {

    /**
     * 插入用户提交的随手拍记录
     */
    int addPhotos(ConvPhotoInfo convPhotoInfo);

    /**
     * 修改用户提交的随手拍记录
     */
    int updatePhotos(ConvPhotoInfo convPhotoInfo);

    /**
     * 通过userId获取随手拍记录列表
     */
    List<ConvPhotoInfo> getPhotoList(@Param("pageNum") int pageNum, @Param("pageSize") int pageSize, @Param("userId") Long userId);

    /**
     * 通过convId获取随手拍记录
     */
    ConvPhotoInfo getPhotoInfo(@Param("convId") Long convId);

    /**
     * 添加用户反馈
     */
    int updateUserFeedBack(@Param("convId") Long convId, @Param("feedback") int feedback, @Param("feedbackOpinion") String feedbackOpinion, @Param("updateTime") Long updateTime);


    /**
     * 待审核列表    144637
     *
     * @param
     * @return
     */
    List<ConvPhotoInfo> queryPendingAuditList(Page page);

    /**
     * 待审核列表count    144637
     *
     * @param
     * @return
     */
    Integer queryPendingAuditListCount(Page page);

    /**
     * 获取随手拍大赞北京, 社会警示记录列表
     */
    List<ConvPhotoInfo> getPraisPhotoList(@Param("pageNum") int pageNum, @Param("pageSize") int pageSize, @Param("typeCode") int typeCode);

    /**
     * 获取随手拍大赞北京记录列表
     */
    List<ConvPhotoInfo> getProblemHandList(@Param("pageNum") int pageNum, @Param("pageSize") int pageSize);


    /**
     * 锁定随手拍记录
     */
    int lockConvRecord(@Param("convId") Long convId, @Param("lockTime") Long lockTime);

    /**
     * 解锁随手拍记录
     */
    int unlockConvRecord(@Param("convId") Long convId);

    /**
     * 根据id查询随手拍记录详情
     *
     * @param convId
     * @return
     */
    ConvPhotoInfo queryConvDetailById(Long convId);

    /**
     * 下一个未处理的详情（随机或锁）144637
     *
     * @param paramMap 参数map
     * @author 144637
     */
    ConvPhotoInfo queryNextPendingAuditDetailByCreateTime(Map<String, Object> paramMap);

    /**
     * 审核失败,记录  144637
     *
     * @param photoInfo
     * @return
     */
    int auditNotPassAndUpdateConvRecord(ConvPhotoInfo photoInfo);

    /**
     * 审核成功,记录  144637
     *
     * @param photoInfo
     * @return
     */
    int auditPassAndUpdateConvRecord(ConvPhotoInfo photoInfo);

    /**
     * 查询举报列表   144637
     *
     * @param page
     * @return
     */
    List<ConvPhotoInfo> queryReportList(Page page);

    /**
     * 查询举报列表 count   144637
     *
     * @param page
     * @return
     */
    Integer queryReportListCount(Page page);

    /**
     * 审核举报类型的随手拍记录     144637
     *
     * @param photoInfo
     * @return
     */
    int auditReportAndUpdate(ConvPhotoInfo photoInfo);

    /**
     * 查询已办结列表 144637
     *
     * @param page
     * @return
     */
    List<ConvPhotoInfo> queryPublishedConvList(Page page);

    /**
     * 查询已办结列表 count 144637
     *
     * @param page
     * @return
     */
    Integer queryPublishedConvListCount(Page page);


    /**
     * 是否隐藏
     *
     * @param convId
     * @param showFlag
     * @return
     */
    int updShowFlag(@Param("convId") Long convId, @Param("showFlag") int showFlag);

    /**
     * 获取专题下的随手拍列表
     *
     * @param subjectId 专题id
     * @return List<ConvSubject>
     * @author 144637
     */
    List<ConvPhotoInfo> getSubjectConvList(@Param("offset") int offset, @Param("pageSize") int pageSize, @Param("subjectId") String subjectId);

}